package com.dc.refactoring._3_重新组织数据._1_SelfEncapsulateField.newObject;

/**
 * Description: 自封装字段_定义整数范围的子类
 * @author: gdc
 * @date: 2020/11/16
 * @version 1.0
 */
public class CappedRange extends IntRange {

    /**
     * 添加，范围上限字段
     */
    private int cap;

    public CappedRange(int low, int high, int cap) {
        super(low, high);
        this.cap = cap;
    }

    public int getCap() {
        return cap;
    }

    // 此时可以重写 getHigh()方法，从而加上对“范围上限”的考虑，而不必修改 IntRange 的任何行为
    @Override
    public int getHigh() {
        return Math.min(getCap(), super.getHigh());
    }
}
